package com.ktdaddy.service;

import com.ktdaddy.request.CreateRoleReq;
import com.ktdaddy.request.QueryAllRoleReq;
import com.ktdaddy.request.RoleQueryReq;
import com.ktdaddy.request.UpdateRoleReq;
import com.ktdaddy.utils.PageResult;
import com.ktdaddy.vo.RoleInfoVO;

import java.util.List;
import java.util.Set;

/**
 * @author kdaddy@163.com
 * @date 2021/4/27 22:51
 */
public interface RoleService {

    /**
     * 根据用户名加载角色编码
     * @param kernelName
     * @return
     */
    Set<String> loadByKernelName(String kernelName);

    /**
     * 分页查询角色列表
     * @param roleQueryReq
     * @return
     */
    PageResult getRoleListByPage(RoleQueryReq roleQueryReq);

    /**
     * 创建角色
     * @param createRoleReq
     * @return
     */
    boolean createRole(CreateRoleReq createRoleReq);

    /**
     * 删除角色信息
     * @param id
     * @return
     */
    void deleteRole(Integer id);

    /**
     * 更新角色信息
     * @param updateRoleReq
     * @return
     */
    boolean updateRole(UpdateRoleReq updateRoleReq);

    /**
     * 更新角色状态
     * @param id
     * @param status
     * @return
     */
    boolean setRoleStatus(Integer id, Integer status);

    /**
     * 根据条件查询所有的角色列表
     * @param queryAllRoleReq
     * @return
     */
    List<RoleInfoVO> getAllRoleList(QueryAllRoleReq queryAllRoleReq);
}
